希望瀏覽數可以多點啦,更多人看我的教學後有所增長
在 Discord 中,「對話框」指的是使用者可以在彈出視窗中輸入資訊或進行選擇。這種類型的互動可以提供更具互動性和使用者友善性的體驗。用於各種目的,例如收集使用者偏好、建立互動式選單或在 Discord 機器人中實現使用者提示。
import discord
bot = discord.Bot()
@bot.event
async def on_ready():
print(f'Logged in as {bot.user.name} ({bot.user.id})')
print('Bot is ready to receive commands')
class MyModal(discord.ui.Modal):
def __init__(self, *args, **kwargs) -> None:
super().__init__(*args, **kwargs)
self.add_item(discord.ui.InputText(label="你的名字"))
self.add_item(discord.ui.InputText(label="關於你", style=discord.InputTextStyle.long))
async def callback(self, interaction: discord.Interaction):
embed = discord.Embed(title="day27")
embed.add_field(name="你的名字", value=self.children[0].value)
embed.add_field(name="關於你", value=self.children[1].value)
await interaction.response.send_message(embeds=[embed])
@bot.command()
async def modal_slash(ctx: discord.ApplicationContext):
#顯示從斜線命令呼叫模式對話框的範例
modal = MyModal(title="example")
await ctx.send_modal(modal)
bot.run("token")
執行結果:
MyModal
設定一個類別放入對話框內容
MyModal(title="example")
設定對話框名稱
self.add_item
add_item
作為類別內部的類別屬性MyModal。然後,我們使用add_item
方法將這些你的名字
和關於你
元件新增到視圖中。
value=self.children[0].value
放入輸入文字的區域,最多可以有5個InputText
欄位。這些字段提供一些客製化的設計。
style
style
參數用於確定輸入欄位是短(單行)還是長(多行)。
InputTextStyle值 | 值 |
---|---|
單行 | short ,singleline |
多行 | paragraph = 2 ,multiline = 2 ,long = 2 |
今天我們使用day13的讀取的csv數據並透過嵌入呈現在discord機器人中,但這次我們使用所有數據(高級聯盟overall)。讓我們嘗試一下吧
import csv
from discord import File, Embed
import discord
data=[]
bot = discord.Bot()
with open('pokemon.csv', 'r') as file:
reader = csv.reader(file)
#for循環列印csv項目
for row in reader:
data.append(row)
def name(n,y):
return(data[n][y])
@bot.event
async def on_ready():
print(f'Logged in as {bot.user.name} ({bot.user.id})')
print('Bot is ready to receive commands')
@bot.command()
async def get_pokemon(ctx,pokemon):
pokemon = int(pokemon)
embed=discord.Embed(title="名稱 : "+name(pokemon,0), description="圖鑑編號 : "+name(pokemon,2))
embed.add_field(name="第一屬性", value=name(pokemon,3), inline=False)
embed.add_field(name="第二屬性", value=name(pokemon,4), inline=True)
embed.add_field(name="攻擊力", value=str(name(pokemon,5)), inline=True)
embed.add_field(name="防禦力", value=str(name(pokemon,6)), inline=True)
embed.add_field(name="一般招式", value=name(pokemon,10), inline=True)
embed.add_field(name="特殊招式1", value=name(pokemon,11), inline=True)
embed.add_field(name="特殊招式2", value=name(pokemon,12), inline=True)
embed.set_footer(text="python基礎及數據科學之應用day 13[寶可夢大師pvp資料(csv)讀取]")
await ctx.send(embed=embed)
bot.run("token")
執行結果:
CSV檔案名為pokemon.csv使用 用csv.reader打開
get_pokemon
用之前學到的嵌入展示
今天的有趣內容到這裏,如果覺得我的文章對你有幫助或有更好的建議,可以追蹤我和不妨在留言區提出,我們明天再見。
reference:
https://discord.com/developers/docs/intro